home *** CD-ROM | disk | FTP | other *** search
-
-
-
- GPROF User Commands GPROF
-
-
-
- NNAAMMEE
- gprof - display call-graph profile data
-
- SSYYNNOOPPSSIISS
- ggpprrooff [ --aa ] [ --bb ] [ --cc ] [ --ee _n_a_m_e ] [ --EE _n_a_m_e ]
- [ --ff _n_a_m_e ] [ --FF _n_a_m_e ] [ --ss ] [ --zz ]
- [ _o_b_j_e_c_t-_f_i_l_e [ _p_r_o_f_i_l_e-_f_i_l_e ... ] ]
-
- DDEESSCCRRIIPPTTIIOONN
- _G_p_r_o_f produces an execution profile of C, Pascal, or FORTRAN
- 77 programs. The effect of called routines is incorporated
- in the profile of each caller. The profile data is taken
- from the call graph profile file (_g_m_o_n._o_u_t default) which is
- created by programs compiled with the --ppgg option of _c_c, _p_c,
- and _f_7_7. That option also links in versions of the library
- routines which are compiled for profiling. The symbol table
- in the named object file (_a._o_u_t by default) is read and
- correlated with the call graph profile file. If more than
- one profile file is specified, the _g_p_r_o_f output shows the
- sum of the profile information in the given profile files.
-
- First, execution times for each routines are propagated
- along the edges of the call graph. Cycles are discovered,
- and calls into a cycle are made to share the time of the
- cycle. The first listing shows the functions sorted accord-
- ing to the time they represent, including the time of their
- call graph descendants. Below each function entry is shown
- its (direct) call-graph children, and how their times are
- propagated to this function. A similar display above the
- function shows how this function's time and the time of its
- descendants is propagated to its (direct) call-graph
- parents.
-
- Cycles are also shown, with an entry for the cycle as a
- whole and a listing of the members of the cycle and their
- contributions to the time and call counts of the cycle.
-
- Next, a flat profile is given, similar to that provided by
- _p_r_o_f(1). This listing gives the total execution times and
- call counts for each of the functions in the program, sorted
- by decreasing time. Finally, an index showing the
- correspondence between function names and call-graph profile
- index numbers.
-
- Beware of quantization errors. The granularity of the sam-
- pling is shown, but remains statistical at best. It is
- assumed that the time for each execution of a function can
- be expressed by the total time for the function divided by
- the number of times the function is called. Thus the time
- propagated along the call-graph arcs to parents of that
- function is directly proportional to the number of times
- that arc is traversed.
-
-
-
- Sprite v1.0 22 April 1986 1
-
-
-
-
-
-
- GPROF User Commands GPROF
-
-
-
- The profiled program must call _e_x_i_t(2) or return normally
- for the profiling information to be saved in the _g_m_o_n.._o_u_t
- file.
-
- OOPPTTIIOONNSS
- --aa suppress printing statically declared functions. If
- this option is given, all relevant information about
- the static function (for instance, time samples, calls
- to other functions, calls from other functions) belongs
- to the function loaded just before the static function
- in the _a.._o_u_t file.
-
- --bb Brief. Suppress descriptions of each field in the pro-
- file.
-
- --cc the static call-graph of the program is discovered by a
- heuristic which examines the text space of the object
- file. Static-only parents or children are indicated
- with call counts of 0.
-
- --ee _n_a_m_e
- suppress printing the graph profile entry for routine
- _n_a_m_e and all its descendants (unless they have other
- ancestors that aren't suppressed). More than one --ee
- option may be given. Only one _n_a_m_e may be given with
- each --ee option.
-
- --EE _n_a_m_e
- suppress printing the graph profile entry for routine
- _n_a_m_e (and its descendants) as --ee, above, and also
- exclude the time spent in _n_a_m_e (and its descendants)
- from the total and percentage time computations. More
- than one --EE option may be given. For example, --EE
- _m_c_o_u_n_t --EE _m_c_l_e_a_n_u_p is the default.
-
- --ff _n_a_m_e
- print the graph profile entry only for routine _n_a_m_e and
- its descendants. More than one --ff option may be given.
- Only one _n_a_m_e may be given with each --ff option.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sprite v1.0 22 April 1986 2
-
-
-
-
-
-
- GPROF User Commands GPROF
-
-
-
- --FF _n_a_m_e
- print the graph profile entry only for routine _n_a_m_e and
- its descendants (as --ff,, above) and also use only the
- times of the printed routines in total time and percen-
- tage computations. More than one --FF option may be
- given. Only one _n_a_m_e may be given with each --FF option.
- The --FF option overrides the --EE option.
-
- --ss produce a profile file _g_m_o_n.._s_u_m which represents the
- sum of the profile information in all the specified
- profile files. This summary profile file may be given
- to subsequent executions of _g_p_r_o_f (probably also with a
- --ss) option to accumulate profile data across several
- runs of an _a.._o_u_t file.
-
- --zz display routines which have zero usage (as indicated by
- call counts and accumulated time). This is useful in
- conjunction with the --cc option for discovering which
- routines were never called.
-
- FFIILLEESS
- a.out the namelist and text space
- gmon.out dynamic call-graph and profile
- gmon.sum summarized dynamic call-graph and profile
-
- SSEEEE AALLSSOO
- monitor(3), profil(2), cc(1), prof(1)
- Graham, S.L., Kessler, P.B., McKusick, M.K., `gprof: A Call
- Graph Execution Profiler', _P_r_o_c_e_e_d_i_n_g_s _o_f _t_h_e _S_I_G_P_L_A_N '_8_2
- _S_y_m_p_o_s_i_u_m _o_n _C_o_m_p_i_l_e_r _C_o_n_s_t_r_u_c_t_i_o_n, SIGPLAN Notices, Vol.
- 17, No. 6, pp. 120-126, June 1982.
-
- BBUUGGSS
- Parents which are not themselves profiled will have the time
- of their profiled children propagated to them, but they will
- appear to be spontaneously invoked in the call-graph list-
- ing, and will not have their time propagated further. Simi-
- larly, signal catchers, even though profiled, will appear to
- be spontaneous (although for more obscure reasons). Any
- profiled children of signal catchers should have their times
- propagated properly, unless the signal catcher was invoked
- during the execution of the profiling routine, in which case
- all is lost.
-
-
-
-
-
-
-
-
-
-
-
-
- Sprite v1.0 22 April 1986 3
-
-
-
-